package com.gusto.engine.clusterant.algorithms.antsclustering;

import java.util.List;

/**
 * <p>Common interface for all Ant clustering algorithms.</p>
 * 
 * @author amokrane.belloui@gmail.com
 *
 */
public interface AntsClusteringAlgorithm {
	
	/**
	 * Initialize points randomly
	 * 
	 * @param points
	 * @param minDist
	 */
	public void initializeRandom(List<Object> points, int minDist);
	
	/**
	 * Put points on the plan
	 * @param points
	 */
	public void initializeLoadData(List<Object> points);
	
	/**
	 * Start the clustering process
	 */
	public void cluster();
	
	/**
	 * Get the listeners that are registred
	 * @return
	 */
	public List<AntsClusteringAlgorithmListener> getListeners();
	
}
